ORM(Object Relation Mapping)
✒️ 2025-06-29 21:47 내용 수정
참고 자료 : F-Lab 백엔드 개발자를 위한 ORM 이해하기
데이터베이스과 객체 지향 프로그래밍 언어 간의 데이터를 변환하는 프로그래밍 기법
- 참고 자료 : 위키백과 객체 관계 매핑
- 데이터베이스의 데이터와 객체 지향 프로그래밍 언어의 데이터를 서로 호환하는 방법이다.
- 객체 지향 방식으로 클래스와 객체를 사용하여 데이터베이스의 CRUD 작업을 수행할 수 있다.
- Java의 Hibernate와 JPA, Python의 SQLAlchemy, Node의 Sequelize 등이 있다.
ORM 사용 시 장점
- ORM을 사용하면 객체 지향 언어로 데이터베이스의 데이트를 쉽게 조작할 수 있다.
- 데이터베이스와의 상호작용에서 발생하는 복잡성과 결합도를 낮춰 개발자의 생산성을 향상시키는데 도움을 준다.
- 데이터베이스의 설계를 변경 시에도 애플리케이션에서 데이터를 사용할 때 유연하게 대응할 수 있어 확장성과 유지 보수에 도움이 된다.
- 애플리케이션 코드를 변경하지 않고도 다른 데이터베이스와 연결하여 사용할 수 있다.
- JDBC의
PreparedStatement와 같은 클래스를 사용하지 않고 Raw SQL문을 작성하려는 경우엔 SQL Injection 공격 위험이 있다. ORM 사용 시 SQL Injection 공격을 방지할 수 있다.- Sequelize 참고.
ORM 사용 시 고려사항
- ORM을 사용하면 편리하지만, 몇가지 사항을 고려해야 한다.
- SQL query가 최적화되지 않은 상황에서 ORM을 사용할 때 성능 저하가 발생할 수 있다.
- 복잡한 동작을 처리하는 SQL의 경우 ORM 사용보다 Raw SQL이 더 효율적일 수 있다.